From 963264a73af03606a08d85be9e4459bb9eaded14 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 10 Dec 2017 01:04:32 +0100 Subject: [PATCH] gdk: Fix wrong usage of g_task_propagate_pointer() The return value is transfer full, not transfer none. --- gdk/wayland/gdkclipboard-wayland.c | 18 +++--------------- gdk/x11/gdkclipboard-x11.c | 22 +++++----------------- 2 files changed, 8 insertions(+), 32 deletions(-) diff --git a/gdk/wayland/gdkclipboard-wayland.c b/gdk/wayland/gdkclipboard-wayland.c index 30ada30f87..63c1f756a9 100644 --- a/gdk/wayland/gdkclipboard-wayland.c +++ b/gdk/wayland/gdkclipboard-wayland.c @@ -251,28 +251,16 @@ gdk_wayland_clipboard_read_finish (GdkClipboard *clipboard, GAsyncResult *result, GError **error) { - GInputStream *stream; GTask *task; g_return_val_if_fail (g_task_is_valid (result, G_OBJECT (clipboard)), NULL); task = G_TASK (result); g_return_val_if_fail (g_task_get_source_tag (task) == gdk_wayland_clipboard_read_async, NULL); - stream = g_task_propagate_pointer (task, error); - - if (stream) - { - if (out_mime_type) - *out_mime_type = g_task_get_task_data (task); - g_object_ref (stream); - } - else - { - if (out_mime_type) - *out_mime_type = NULL; - } + if (out_mime_type) + *out_mime_type = g_task_get_task_data (task); - return stream; + return g_task_propagate_pointer (task, error); } static void diff --git a/gdk/x11/gdkclipboard-x11.c b/gdk/x11/gdkclipboard-x11.c index 4864c1f8bb..f6d7b8cc63 100644 --- a/gdk/x11/gdkclipboard-x11.c +++ b/gdk/x11/gdkclipboard-x11.c @@ -1062,33 +1062,21 @@ gdk_x11_clipboard_read_finish (GdkClipboard *clipboard, GAsyncResult *result, GError **error) { - GInputStream *stream; GTask *task; g_return_val_if_fail (g_task_is_valid (result, G_OBJECT (clipboard)), NULL); task = G_TASK (result); g_return_val_if_fail (g_task_get_source_tag (task) == gdk_x11_clipboard_read_async, NULL); - stream = g_task_propagate_pointer (task, error); - - if (stream) + if (out_mime_type) { - if (out_mime_type) - { - GSList *targets; + GSList *targets; - targets = g_task_get_task_data (task); - *out_mime_type = targets->data; - } - g_object_ref (stream); - } - else - { - if (out_mime_type) - *out_mime_type = NULL; + targets = g_task_get_task_data (task); + *out_mime_type = targets ? targets->data : NULL; } - return stream; + return g_task_propagate_pointer (task, error); } static void -- 2.30.2